<?php

require_once '../../classes/arquitetura/service/AbstractService.class.php';

/**
 * Esta classe executa as chamadas DAO.
 *
 * @author tiago
 */
class LoginServiceDao extends AbstractService {

    /**
     * Faz a validação do usuário no banco de dados.
     * @author Tiago <tiago.professor@gmail.com>
     */
    public function specificExecute() {
        if($this->log->isDebugEnabled()) {
            $this->log->logDebug('Entrou no método specificExecute().');
        }

        /* Cosntruindo o comando sql para recuperar o usuário do banco de dados. */
        $sql = 'SELECT id, nome, sobrenome, sexo, email, dt_nasc, rand, ativo, insert_date, update_date FROM usuario';
        $where = " where email = '" . $this->getModel()->getLogin()->getEmail() . "' and senha = '" . $this->getModel()->getLogin()->getSenha() . "'";

        $sqlToExec = $sql . $where;
        $sqlResult = $this->conn->executeQuery($sqlToExec);
        
        $numRows = 0; //Zero
        if($sqlResult) {
            //Tem que retornar só uma linha.
            $numRows = $this->conn->getNumRows($sqlResult);
        }

        if ($numRows == self::ONE_ROW) {
            if($this->log->isInfoEnabled()) {
                $this->log->logInfo('Usuário recuperado com sucesso da base de dados.');
            }
            
            $row = $this->conn->fetchAssoc($sqlResult);
            $this->getModel()->setUsuario(UsuarioHelper::getObjFromDB($row));
        } else {
            if($this->log->isInfoEnabled()) {
                $this->log->logInfo('Usuário não foi encontrado na base de dados.');
            }
            
            //Erro
            $result = $this->getModel()->getResult();
            $result->setSuccess(IResult::FALHA);
            $result->setErrorTitle('Erro no login');
            $result->setErrorMsg('Empresa e/ou Usu&aacute;rio e/ou Senha incorreto(s).');
        }
    }

    public function executarExcluir() {
    }

    public function executarPesquisa() {
    }

    public function executarSalvar() {
    }

    public function executarSalvarComo() {
    }
}

?>
